3,305 research outputs found

    Scalable XML Collaborative Editing with Undo short paper

    Get PDF
    Commutative Replicated Data-Type (CRDT) is a new class of algorithms that ensures scalable consistency of replicated data. It has been successfully applied to collaborative editing of texts without complex concurrency control. In this paper, we present a CRDT to edit XML data. Compared to existing approaches for XML collaborative editing, our approach is more scalable and handles all the XML editing aspects : elements, contents, attributes and undo. Indeed, undo is recognized as an important feature for collaborative editing that allows to overcome system complexity through error recovery or collaborative conflict resolution

    Research report : Collaborative Peer 2 Peer Edition: Avoiding Conflicts is Better than Solving Conflicts

    Full text link
    Collaborative edition is achieved by distinct sites that work independently on (a copy of) a shared document. Conflicts may arise during this process and must be solved by the collaborative editor. In pure Peer to Peer collaborative editing, no centralization nor locks nor time-stamps are used which make conflict resolution difficult. We propose an algorithm which relies on the notion or semantics dependence and avoids the need of any integration transformation to solve conflicts. Furthermore, it doesn't use any history file recording operations performed since starting the edition process. We show how to define editing operations for semi-structured documents i.e. XML-like trees, that are enriched with informations derived for free from the editing process. Then we define the semantics dependence relation required by the algorithm and we present preliminary results obtained by a prototype implementation.Comment: 12 page

    Peer to Peer Optimistic Collaborative Editing on XML-like trees

    Full text link
    Collaborative editing consists in editing a common document shared by several independent sites. This may give rise to conficts when two different users perform simultaneous uncompatible operations. Centralized systems solve this problem by using locks that prevent some modifications to occur and leave the resolution of confict to users. On the contrary, peer to peer (P2P) editing doesn't allow locks and the optimistic approach uses a Integration Transformation IT that reconciliates the conficting operations and ensures convergence (all copies are identical on each site). Two properties TP1 and TP2, relating the set of allowed operations Op and the transformation IT, have been shown to ensure the correctness of the process. The choice of the set Op is crucial to define an integration operation that satisfies TP1 and TP2. Many existing algorithms don't satisfy these properties and are indeed incorrect i.e. convergence is not guaranteed. No algorithm enjoying both properties is known for strings and little work has been done for XML trees in a pure P2P framework (that doesn't use time-stamps for instance). We focus on editing unranked unordered labeled trees, so-called XML-like trees that are considered for instance in the Harmony pro ject. We show that no transformation satisfying TP1 and TP2 can exist for a first set of operations but we show that TP1 and TP2 hold for a richer set of operations. We show how to combine our approach with any convergent editing process on strings (not necessarily based on integration transformation) to get a convergent process

    Representing Code History with Development Environment Events

    Get PDF
    Modern development environments handle information about the intent of the programmer: for example, they use abstract syntax trees for providing high-level code manipulation such as refactorings; nevertheless, they do not keep track of this information in a way that would simplify code sharing and change understanding. In most Smalltalk systems, source code modifications are immediately registered in a transaction log often called a ChangeSet. Such mechanism has proven reliability, but it has several limitations. In this paper we analyse such limitations and describe scenarios and requirements for tracking fine-grained code history with a semantic representation. We present Epicea, an early prototype implementation. We want to enrich code sharing with extra information from the IDE, which will help understanding the intention of the changes and let a new generation of tools act in consequence

    Abstract unordered and ordered trees CRDT

    Get PDF
    Trees are fundamental data structure for many areas of computer science and system engineering. In this report, we show how to ensure eventual consistency of optimistically replicated trees. In optimistic replication, the different replicas of a distributed system are allowed to diverge but should eventually reach the same value if no more mutations occur. A new method to ensure eventual consistency is to design Conflict-free Replicated Data Types (CRDT). In this report, we design a collection of tree CRDT using existing set CRDTs. The remaining concurrency problems particular to tree data structure are resolved using one or two layers of correction algorithm. For each of these layer, we propose different and independent policies. Any combination of set CRDT and policies can be constructed, giving to the distributed application programmer the entire control of the behavior of the shared data in face of concurrent mutations. We also propose to order these trees by adding a positioning layer which is also independent to obtain a collection of ordered tree CRDTs
    • …
    corecore